This invention refers to improvements in pointer-controlled computer operations, and more specifically, to means for causing a computer to repeat a desired operation or series of operations by a reduced number of commands or by a single command, without interfering with the computer software. In particular, it refers to means for causing a computer to repeat the transfer of print or graphic elements from one zone of the computer screen to another or for reproducing designs in any such zone, as well as for creating pointer commands that are not available in the computer toolbars or menus.
Patent application PCT/IL96/00078, the contents of which are entirely incorporated herein by reference, describes improvements in pointer devices for operating computers in computer operation processes and in apparatus comprising computers and pointer devices.
In particular, it discloses a method of operating a pointer controlled computer, which comprises the following steps:
Axe2x80x94Choosing one of two Modes, the RIM (REGISTER/MEMORY) Mode or the A/P (ACTIVE/PLAY) Mode;
Bxe2x80x94When the pointer is in the R/M Mode: a) selecting at least an operation unit, as hereinbefore defined, by bringing the pointer index to a reference position corresponding to said operation unit; and b) causing the pointer index coordinate displacements relative to said reference position and a fist, selected base point to be counted and registered or memorized as differential coordinate displacements;
Cxe2x80x94When the pointer is in the A/P Mode: a) selecting an operation unit from among those previously selected in the R/M Mode; b) determining the corresponding counter coordinates, as hereinbefore defined, of the reference position by applying the differential coordinate displacements, with the appropriate sign, to the counter coordinates of a second base point; and c) carrying out the operation unit corresponding to said reference counter coordinates.
Said PCT application also discloses pointer controlled computer apparatus, which comprises:
Ixe2x80x94a pointer device, comprising means for producing and transmitting to a computer at least signals corresponding to pointer index displacements and other desired information and instructions;
IIxe2x80x94a computer having means for receiving and means for processing signals from said pointer, said processing means comprising means for causing pointer index displacements and other operations directed by said signals to be performed;
IIIxe2x80x94means for identifying, among said signals, those corresponding to differential displacements;
IVxe2x80x94counter means for registering differential displacements;
Vxe2x80x94means for reading and/or retrieving said differential displacements and determining from them reference counter coordinates; and
VIxe2x80x94means for performing the operations corresponding to said reference counter coordinates.
The pointer to which said PCT application, as well as the present application, refers, may be, and often is, a mouse; however, it may be any kind of pointer, and therefore, while reference may be, made to a mouse for descriptive purposes, it should be remembered that what is said about a mouse extends to any computer controlling pointers, and, conversely, that the term xe2x80x9cpointerxe2x80x9d includes a mouse. It should also be remembered that a pointer is represented on the computer screen by a pointer index or cursor (xe2x80x9cindexxe2x80x9d and xe2x80x9ccursorxe2x80x9d being herein synonymous) and what is seen by the computer operator is the positions and displacements of said index, so that, when pointer positions or displacements are mentioned herein. what is intended are the positions or displacements of the pointer index. In computer operation, the pointer index may assume different shapes depending on the computer software, in particular the arrow shape, the I-shape and the L- or equivalent shape, said shapes and their changes have a significance well known to all persons who use computers.
The smallest displacements that a pointer index can make along the X and Y axes, and the corresponding X-Y elementary vector displacements, will be called herein, as they are called in the aforesaid PCT/IL96/00078, xe2x80x9celementaryxe2x80x9d coordinate displacements or vector displacements, respectively. Their size depends on the particular pointer and especially on the particular system in which the pointer operates. In general, all coordinate displacements that are not elementary ones are algebraic sums of elementary coordinate displacements, and all vector displacements that are not elementary ones are vectorial sums of elementary vector displacements. It should be stressed that in this specification and claim the term xe2x80x9cpointerxe2x80x9d indicated the pointing device, while what is seen on the screen is xe2x80x9cthe pointer index or cursorxe2x80x9d. The method and apparatus of the aforesaid PCT application associate to any operation, or series of operations, the succession of pointer events which cause them to be carried out by the computer. According to it, two Modes are available in the pointer-computer device and in its operation: the R/M (REGISTER/MEMORY) Mode and the A/P (ACTIVE/PLAY) Mode. In the R/M Mode, successions of pointer events, required to cause an operation or series of operations to be performed by the computer, are registered and memorized in appropriate memory banks; in the A/P Mode, said successions are reproduced, and the corresponding operation or series of operations are caused to be performed by a single or a limited number of pointer events, regardless of how many such events were originally and are ordinarily required to achieve the same effect. The expression xe2x80x9cpointer (mouse) eventxe2x80x9d is ordinarily used to mean the actuation of a pointer (or, in particular, mouse) key, or in general, any command given by means of a pointer, but in this specification and claims, it should be construed to further include any elementary X or Y displacement of the pointer or of the pointer index. More generally, a pointer event is the transmission of a message or code from the pointer to the computer, which message or code is generally a digital one, composed of a number of bits. The method and apparatus described in said PCT application permit, and in fact require, to register and memorize all pointer eventsxe2x80x94viz. the corresponding messages or codesxe2x80x94which are relevant for carrying out any desired computer operation and to xe2x80x9cplayxe2x80x9d, viz. reproduce those same successions of events as if they originated at the moment from the pointer, whenever desired to carry out once again the same operation or succession of operations. When said successions of events are so reproduced, the computer believes, so to speak, that they originate from the pointer, and reacts accordingly.
There are, however, a number of desirable improvements in computer operations that are not connected, or not directly connected, to the carrying out of specific operations, in particular, such operations as are displayed on the toolbars or menus of the computer. For example, in drawing operations, the pointer may be used to define what will be called a xe2x80x9cdesignxe2x80x9d, viz. a geometric figure, a curve, a shaped surface or any regular or irregular graphic entity, on the computer screen. Some computer programs are capable of memorizing an approximation of the path which the pointer has followed in defining the design, by memorizing the positions of the pointer at certain time intervals and by approximately reproducing the design as defined by the points at which the pointer was located at said time intervals. In other words, the design is approximately memorized as a succession of segments, the length of which depends on the length of displacement of the pointer between the two successive times at which the position of the pointer has been memorized. It is apparent that in this way, the design is reproduced with an approximation that depends on the speed with which it has been generated by the pointer in its displacement. If the pointer has been moved fairly rapidly, the succession of segments will not adequately approximate the pointer path, and therefore the design itself and it will be necessary to generate it very slowly in order to reproduce it with reasonable accuracy. However, this is the best that present computer programs are capable of doing. It would be desirable to be able to reproduce graphic entities accurately, regardless of the speed with which. they are generated, and of their complexity. Further, it would be desirable to be able to reproduce a design in any chosen zone of the computer screen, even different from that in which the design has been generated. Present computer programs do not permit to so this.
Other operations are not displayed in computer toolbars or menus and are not connected with specific positions of the pointer index. An example is the displacement of a figure in graphic operations from one zone of the screen to another. An analogous example is the displacement of a portion of a script or the inversion of the order of a succession of characters or graphic entities. E.g., it may be desired to permute letters or other graphic entities, that have been generated in a given succession, to obtain a different succession, or to effect the same permutation on different such successions. With present computer software, the same, often long series of pointer events is required every time that this is to be done, whereas it would be desirable to reproduce the permutation, once it has been generated for the first time, in a quick and easy manner.
Still further, many operations afforded by present computer software, require the operator to learn and remember a complex operating procedure. This is neither easy nor convenient, and therefore many possibilities afforded by the software are not exploited and often are not known to the operators. It would be desirable to simplify such procedures.
While there are operations that are not displayed in a computer toolbar or menu, there are positions in such toolbars or menus that do not correspond to an operation, but oily enable a successive operation, that may be carried out or not, as the operator chooses.
Further, there are computer actions that require the actuation of pointer events, but are independent on tube position of the screen at which the events occur.
It is a purpose of this invention to permit all the most desirable improvements in pointer operation, as well as other improvements that will be evident to skilled persons, without in any way interfering with the computer software and without generating a dependence on any particular computer program.
It is another purpose to facilitate graphic operations and to permit their repetition in a simplified and quicker manner.
It is a still further purpose to facilitate operations that are not displayed in a computer toolbar or menu, or computer actions that involve choices or commands that only enable a successive operation, and to permit their repetition in a simplified and quicker manner.
It is a still further purpose to facilitate computer actions that are dependent on pointer events, but not on the position of the screen at which the events occur, and to permit their repetition in a simplified and quicker manner.
It is a still further purpose to create commands that are not comprised in the computer toolbars or menus and which are constituted by a succession of pointer events, and to permit their execution, whenever desired, by producing a single pointer event or a limited number of such events.
Hereinafter, a succession or series of pointer (mouse) events will be called xe2x80x9ca pointer (mouse) outputxe2x80x9d. An output may consist of any number, e or more, of events. The displacement of the pointer cursor over the screen, resulting from a plurality of elementary displacements, each of which is an event, represents in itself an output. A single elementary displacement along one coordinate axis is a xe2x80x9csingle-event pointer outputxe2x80x9d. The computer, receiving the pointer output, will translate it to an action (simple or complex) which depends on the computer software. The computer system comprises instructions, generally stored in what is known as the xe2x80x9cService Libraryxe2x80x9d, which determine how the computer should act when it receives a pointer output. The sum total of these instructions will be called hereinafter xe2x80x9ctransfer operatorxe2x80x9d, since it creates a correspondence between pointer outputs and computer actions. The action which the computer carries out in consequence of the application of the transfer operator to a given pointer output, will be called the action or the program response xe2x80x9cassociatedxe2x80x9d with that output, and, vice versa, the pointer output which gives rise, by the application of the transfer operator, to a given computer action or program response, will be called the output xe2x80x9cassociatedxe2x80x9d with that action or program response. It is understood that in some cases a pointer output causes no computer action, such being in general the case e.g. when a pointer key is depressed while the pointer index is located in a blank portion of the screen. It will be said in those cases that the transfer operator is the xe2x80x9czero operatorxe2x80x9d and that the associated action connected to such an output is a xe2x80x9czero actionxe2x80x9d. The transfer operator depends on the computer, on the program which it uses, on the position of the pointer, and in some cases, on the pointer outputs and computer actions that have previously occurred It is in no way connected with the pointer hardware or software. In order to achieve its purposes, this invention must be computer- and software-independent, viz. must be, as to itself equally operative and effective no matter what the transfer operators, though its results may be and generally are influenced by the type of computer and its software.
The process according to the invention comprises the following steps:
Axe2x80x94Choosing one of two Modes, the R/M (REGISTER/MEMORY) Mode or the A/P (ACTIVE/PLAY) Mode;
Bxe2x80x94When the pointer is in the R/M Mode: a) identifying the beginning of a pointer output, b) registering all the pointer events occurring thereafter, c) identifying the end of the pointer output, and d) ceasing to register any successive pointer events;
Cxe2x80x94When the pointer is in the A/P Mode, causing the events comprised in the selected pointer output to be repeated.
Obviously, the transfer operators included in the computer software will react to the repeated pointer events and outputs in the same manner in which they reacted when said events and outputs occurred for the first time, and in both cases the computer will carry out the action associated with said events and outputs.
In preferred embodiments of the invention, the above operations may be carried out on a number of pointer outputs. In that case, when the pointer is in the R/M Mode, one of the possible pointer outputs will be selected at the beginning of the aforesaid process steps and said steps will be repeated for any other selected output; and in the A/P Mode a pointer output will be firstly selected from among those previously chosen in the R/M Mode, and the successive steps will be repeated for any successive, selected pointer output. Said embodiments, therefore, involve the steps of:
Axe2x80x94Choosing one of two Modes, the R/M (REGISTER/MEMORY) Mode or the A/P (ACTIVE/PLAY) Mode;
Bxe2x80x94When the pointer is in the R/M Mode: a) selecting a pointer output; b) identifying the beginning of the selected pointer output, c) registering all the pointer events occurring thereafter, d) identifying the end of the selected pointer output, e) ceasing to register any successive pointer events, and e) repeating the above steps for any further, desired pointer outputs;
Cxe2x80x94When the pointer is in the A/P Mode: a) selecting a pointer output from among those previously chosen in the R/M Mode, and b) causing the events comprised in the selected pointer output to be repeated.
In normal computer operations, as well as in carrying out this invention, pointer events are generally produced by depressing or/and releasing pointer keys or, in the case events that are displacements, by displacing the pointer in a manner adapted to the particular pointer in use. There are, however, pointer events that occur in the process of the invention and which affect the operation of the pointer and not of the computer and therefore are not transformed to associated computer actions by a transfer operator. Among those pointer events are, generally, the identification of the beginning and of the end of a selected pointer output, the change from one Mode to the other, the selection, in the A/P Mode, of a pointer output from among those previously chosen in the R/M Mode, and others that may be provided by the invention. Such pointer eventsxe2x80x94as in general all pointer events that are relevant to the inventionxe2x80x94may be caused by actuating a key or a combination of keys of the pointer or by actuating pointer keys in combination with a computer keyboard key, or, in some cases, by actuating a computer keyboard key or combination of keys. It should be understood, therefore, that the mention hereinafter of the way in which a pointer event is determined, is not binding, as the most suitable key or combination of keys will be adopted by the skilled person in each case. For example, a combination of two pointer keys may be used for changing from the AP Mode (which may, and in most cases does, automatically eat when the computer is switched on) to the R/M Mode and vice versa; and another such combination may be used for identifying the beginning and the end of a pointer output. However, if desired, either the switch from the A/P to the R/M Mode and vice versa, or the identification of the beginning and of the end of a pointer output, or both, may be effected by means of a key or combination of keys of the computer keyboard or combination of such keys with pointer keys. Actuating the keyboard keys will then produce codes having the same effect as if the codes were produced by pointer events.
The invention also provides pointer controlled computer apparatus, which comprises:
Ixe2x80x94a pointer device, comprising means for transmitting to a computer signals corresponding to all occurring pointer events;
IIxe2x80x94means for identifying the beginning and the end of a pointer output;
IIIxe2x80x94a computer, programmed to apply a corresponding transfer operator to all computer outputs;
IIIxe2x80x94means for registering and memorizing the pointer output;
IVxe2x80x94means for retrieving the pointer output; and
Vxe2x80x94means for causing the computer, when desired, to apply to any registered and memorized pointer output the corresponding transfer operator.
By xe2x80x9cretrieving the pointer outputxe2x80x9d is mean herein transmitting to the computer software the codes and messages, which constitute the output, as if they originated directly from the pointer.
In embodiments of the invention, the apparatus will further comprise means for means for registering and memorizing a plurality of pointer outputs, means for selecting any desired pointer output, among said plurality, for registering and memorizing, and means for selecting any registered and memorized pointer output to be retrieved.
The apparatus ordinarily operates in overwrite manner, viz. if a first pointer output has been memorized in a memory bank comprised in the aforesaid means for registering and memorizing the selected pointer outputs, and the same registering and memorizing operations are repeated with reference to a second, different output, the second output replaces the first, which is canceled from said memory bank. In this way, the memorized and reproduced pointer outputs can be varied at will, according to the requirements of the moment.
Further, the outputs memorized in the memory bank comprised in the aforesaid means for registering and memorizing the selected pointer outputs may be canceled when the computer is switched off, thus clearing all the memory means for future operation, or they may be retained in spite of the switching off.
The hardware of the apparatus according to the invention may be the same as described and claimed in PCT/IL96/00078; particularly, it may be the hardware according to any embodiment of PCT/IL96/00078. The means and actions for producing pointer events, described in said PCT application, are generally applicable to the present invention.
If a single pointer output is to be registered and then repeated, it is, so to speak, automatically selected both in the R/M and in the A/P Mode, viz. its registration and repetition may be. started by actuating a key or combination of keys, and it may be that the same key or combination of keys may start registration or repetition, depending on whether the apparatus is in the R/M or in the A/P Mode. However, if any one of a plurality of pointer outputs is to be registered and then repeated when desired, an actual selection between different outputs must be carried out in both Modes and the selected memory bank or banks must be addressed in each case. This can be. done in various ways, readily carried into practice by skilled persons. For instance, a rouse or keyboard key or combination of keys may be associated to each output, and each such key or combination of keys will cause the pointer to convey digital information to the appropriate key or combination of keys and to retrieve information therefor. Alternatively, an output selector may be provided and the different outputs may be identified, e.g., by numerals. The selector may be a key that switches from memory bank or banks at each successive actuation, a different identifying numeral being displayed each time in any convenient way, e.g., in a pointer window. The selector may be a rotatable button, carrying different numerals about its periphery and associated with a reference index, which button switches from one memory bank or combination of banks to another as it is rotated from one angular position to another. The selector may comprise a transistor or a transistor circuit. Al these and other switching means are per se conventional and need not be particularly described.